﻿// Decompiled with JetBrains decompiler
// Type: TaleWorlds.MountAndBlade.View.MissionViews.MissionView
// Assembly: TaleWorlds.MountAndBlade.View, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
// MVID: 61152EB8-513B-4D4A-8AC0-0D1465C6CF6C
// Assembly location: D:\steam\steamapps\common\Mount & Blade II Bannerlord\Modules\Native\bin\Win64_Shipping_Client\TaleWorlds.MountAndBlade.View.dll

using TaleWorlds.Core;
using TaleWorlds.InputSystem;
using TaleWorlds.MountAndBlade.View.Screens;

#nullable disable
namespace TaleWorlds.MountAndBlade.View.MissionViews
{
  public abstract class MissionView : MissionBehavior
  {
    public int ViewOrderPriority;

    public MissionScreen MissionScreen { get; internal set; }

    public IInputContext Input => (IInputContext) this.MissionScreen.SceneLayer.Input;

    public override MissionBehaviorType BehaviorType => MissionBehaviorType.Other;

    public virtual void OnMissionScreenTick(float dt)
    {
    }

    public virtual bool OnEscape() => false;

    public virtual bool IsOpeningEscapeMenuOnFocusChangeAllowed() => true;

    public virtual void OnFocusChangeOnGameWindow(bool focusGained)
    {
    }

    public virtual void OnSceneRenderingStarted()
    {
    }

    public virtual void OnMissionScreenInitialize()
    {
    }

    public virtual void OnMissionScreenFinalize()
    {
    }

    public virtual void OnMissionScreenActivate()
    {
    }

    public virtual void OnMissionScreenDeactivate()
    {
    }

    public virtual bool UpdateOverridenCamera(float dt) => false;

    public virtual bool IsReady() => true;

    public virtual void OnPhotoModeActivated()
    {
    }

    public virtual void OnPhotoModeDeactivated()
    {
    }

    public virtual void OnConversationBegin()
    {
    }

    public virtual void OnConversationEnd()
    {
    }

    public virtual void OnInitialDeploymentPlanMadeForSide(BattleSideEnum side, bool isFirstPlan)
    {
    }

    public override sealed void OnEndMissionInternal() => this.OnEndMission();

    public override void OnRemoveBehavior() => base.OnRemoveBehavior();
  }
}
